The present disclosure relates to operation of interconnected devices, and more specifically to synchronization of action execution across networked nodes using relative time.
It can be desirable to cause an action to occur that includes several events. Some of the events can be controlled by nodes in a network. In some cases, the events should occur substantially simultaneously to correctly execute the action. For example, in a home automation system, a light switch can be configured to turn on and off several lights at once. Each light can be controlled by an autonomous network device that communicates with other such devices over a wireless network. It may be desirable to ensure that all of the lights turn on and off at about the same time when the user actuates the light switch. Operation of other devices may similarly be desirably operated (e.g., turned on, or off, increase audio volume, or mute, or other change in state) in synchronization.
Some network topologies require an on or off command to propagate to a given node over several “hops” from one node to another. The simultaneity of the on or off action needs to take into account the traversal time of the command across the nodes, as well as any transmission failures and transmission retries.
In some cases, commands cannot be synchronized with respect to an absolute point in time because the nodes do not have available or cannot agree on a network-wide absolute time metric, e.g., an universal timestamp, due to protocol or device constraints.